$(function(){
	var $tabList=$("#tab_list"),$pagebar=$("#pagebar ul"),$pageInfo=$("#page_info"),
		pageNo=1,pageSize=10,count=0;//初始值
	/**---------------封装分页方法,count:总条目数,pageNo:当前页---------------*/
	function pageit(count){
		$pagebar.empty();
		//首页和上一页
		if(pageNo==1){
			$pagebar.append("<li id='start_page' class='disabled'><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page'  class='disabled'><a href='javascript:void(0);'>上一页</a></li>");
		}else{
			$pagebar.append("<li id='start_page' pn=1><a href='javascript:void(0);'>首页</a></li>");
			$pagebar.append("<li id='prev_page' pn="+(pageNo-1)+"><a href='javascript:void(0);'>上一页</a></li>");
		}
		var tmp=parseInt(count/10);
		var page_size=count%10==0?(tmp):(tmp+1);//总页数
		//中间数字页
		if(page_size<=5){
			//如果小于5页,则全部显示
			for(var i = 0; i <page_size; i++) {
				if(i==pageNo-1){
					$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}else{
					$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
				}
			}
		}else{
			//如果总页数大于5页,显示当前页和前后各两页以及两个...符号
			if(pageNo<3){
				for(var i = 0; i <5; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
			}else if(pageNo>page_size-2){
				$pagebar.append("<li class='disabled'><a href='javascript:void(0);'>...</a></li>");
				for(var i = page_size-5; i <page_size; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(i+1)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}else{
				for (var i = pageNo-3; i <pageNo+2; i++) {
					if(i==pageNo-1){
						$pagebar.append("<li pn="+(pageNo)+" class='active'><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}else{
						$pagebar.append("<li pn="+(i+1)+"><a href='javascript:void(0);'>"+(i+1)+"</a></li>");
					}
				}
			}
		}
		//下一页和末页
		if(page_size==0||pageNo==page_size){
			$pagebar.append("<li id='next_page' class='disabled'><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' class='disabled'><a href='javascript:void(0);'>末页</a></li>");
		}else{
			$pagebar.append("<li id='next_page' pn="+(pageNo+1)+"><a href='javascript:void(0);'>下一页</a></li>");
			$pagebar.append("<li id='end_page' pn="+page_size+"><a href='javascript:void(0);'>末页</a></li>");
		}
		
		//绑定事件
		$pagebar.find("li").not(".disabled").on("click",function(){
			pageNo=parseInt($(this).attr("pn"));//更新当前页码
			reloadList();
		});
		//分页信息条
		$pageInfo.find("span").each(function(i,k){
			if(i==0){
				if(page_size==0){
					$(k).html(0);
				}else{
					$(k).html((pageNo-1)*10+1);
				}
			}else if(i==1){
				$(k).html(count>pageNo*10?pageNo*10:count);
			}else{
				$(k).html(count);
			}
		});
	}
	/**------------------加载列表---------------------*/
	var params={"pageNo":1,"pageSize":pageSize,"testTypeId":testTypeId};
	function reloadList(){
		params.pageNo=pageNo;
		params.pageSize=pageSize;
		$.get(serverURL+"test/test/list",params,function(data){
			try {
				if(data.code==0){
					data=data.data;
					$tabList.find("tbody").empty();
					count=data.pagination.totalCount;
					if(count>0){
						var html="";
						$.each(data.list,function(i,k){
							html+="<tr>" +
								"<td id='pkc'><input type='checkbox' id='"+k.id+"' class='checkbox' col='"+i+"'></td>" +
								"<td>"+((pageNo-1)*10+i+1)+"</td>" +
								"<td>"+k.name+"</td>"+ 
								"<td>"+
									(k.logoUrl?("<a href='"+k.logoUrl+"' target='_blank'><img src='"+k.logoUrl+"'/></a>"):"无")+
								"</td>"+ 
								"<td title='"+k.testDesc+"'>"+k.testDesc+"</td>"+ 
								"<td>"+k.testCount+"</td>"+ 
								"<td>"+(k.isClose==0?"<span style='color:red;'>关闭中</span>":"使用中")+"</td>"+ 
								"<td><a class='btn btn-default btn-sm' href='"+serverURL+"question.htm?testId="+k.id+"' role='button'>试题管理</a></td>"+ 
							"</tr>";
						});
						$tabList.find("tbody").append(html);
//						$(".tools button").removeAttr("disabled");
					}else{
						$tabList.find("tbody").append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
//						$(".tools button").not(".btn-default").attr("disabled","disabled");
					}
					pageit(count);//重绘工具栏
				}else if(data.code!=-1){
					alert("数据加载出错，请稍后重试");
				}
			} catch (e) {
				alert("数据加载出错，请稍后重试");
			}
		});
	}
	reloadList();
	//全选与取消全选
	$("#pkall").change(function(){
		if($(this).prop("checked")){
			$tabList.find("#pkc :checkbox").prop("checked",true);
		}else{
			$tabList.find("#pkc :checkbox").prop("checked",false);
		}
	});
	//获取选中的行
	function getSelectedCols(){
		return $tabList.find("#pkc :checkbox").filter(":checked");
	}
	/**-------------------加载分类-----------------------*/
	var $typeSelect=$(".tools select");
	$.get(serverURL+"test/listType",function(data){
		if(data.code==0){
			var html="",list=data.data;
			for(var i in list){
				var t=list[i];
				html+="<option value='"+t.testTypeId+"'>"+t.name+"</option>";
			}
			$typeSelect.append(html);
//			if(!testTypeId){//TODO null==false
//				alert(testTypeId);
//				$typeSelect.val(testTypeId);
//			}
		}else if(data.code!=-1){
			alert("分类加载失败，请刷行页面重试");
		}
	});
	$typeSelect.change(function(){
		params.testTypeId=$(this).val();
		testTypeId=$(this).val();
		if($(this).val()!=0){
			reloadList();
		}else{
			$tabList.find("tbody").empty().append("<tr><td colspan="+$("thead th").length+">无数据</td></tr>");
		}
	});
	/**---------------新增-----------------*/
	var $formAdd=$("#form_add"),$addName=$formAdd.find("[name=testName]"),$addDesc=$formAdd.find("[name=testDesc]"),
		$logo=$("#form_add2 input:file"),$logoScan=$("#logo_scan");
	function scanLogo(url){
		$logoScan.parent().parent().parent().show();
		$logoScan.attr("src",url).parent("a").attr("href",url);
	}
	function hideLogo(){
		$logoScan.attr("src","").parent("a").attr("href","");;
		$logoScan.parent().parent().parent().hide();
	}
	//上传文件
	var imgReg=/^.+\.(jpg|png|bmp|gif)$/;
	$logo.change(function(){
		if(!imgReg.test($logo.val())){
    		warnInput($logo);
			return false;
    	}
		$("#form_add2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo(data.data);
	        	}else if(data.code!=-1){
	        		alert("图片上传失败，请重试");
	        		$("#form_add2").get(0).reset();
	        	}
	        } 
		});
	});
	//表单验证
	function checkAddForm(){
		if(!$addName.val()){
			warnInput($addName);
			return false;
		}
		if($addName.val().length>20){
			alert("科室名称不能超过20个字符");
			return false;
		}
		if(!$addDesc.val()){
			warnInput($addDesc);
			return false;
		}
		if($addDesc.val().length>80){
			alert("简介不能超过80个字符");
			return false;
		}
		if(!$logoScan.attr("src")){
			warnInput($logo);
			return false;
		} 
		return true;
	}
	$("#btn_confirm_add").click(function(){
		if(checkAddForm()){
			$.post(serverURL+"test/addTest",{"name":$addName.val(),"testDesc":$addDesc.val(),
				"logoUrl":$logoScan.attr("src"),"isClose":$formAdd.find(":checked").val(),
				"testTypeId":testTypeId},function(data){
				if(data.code==0){
					alert("添加成功");
					hideLogo();
					$("#modal_add").modal("hide");
					$formAdd.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("修改失败，请稍后重试");
				}
			});
		}
	});	
    /**-------------修改科室信息-----------------*/
    var $formEdit=$("#form_edit"),$editId=$formEdit.find("[name=id]"),$editName=$formEdit.find("[name=testName]"),$editDesc=$formEdit.find("[name=testDesc]");
    	$radios=$formEdit.find(":radio"),$logo2=$("#form_edit2 input:file"),$logoScan2=$("#logo_scan2");
	function scanLogo2(url){
		if(url){
			$logoScan2.parent().parent().parent().show();
			$logoScan2.attr("src",url).parent("a").attr("href",url);
		}
	}
	function hideLogo2(){
		$logoScan2.attr("src","").parent("a").attr("href","");;
		$logoScan2.parent().parent().parent().hide();
	}
	//上传文件
	$logo2.change(function(){
		if(!imgReg.test($logo2.val())){
    		warnInput($logo2);
			return false;
    	}
		$("#form_edit2").ajaxSubmit({  
			dataType:'json',
			resetForm:true,
	        success:function(data){
	        	if(data.code==0){
	        		scanLogo2(data.data);
	        	}else if(data.code!=-1){
	        		$("#form_edit2").get(0).reset();
	        		alert("图片上传失败，请重试");
	        	}
	        } 
		});
	});
    function checkEditForm(){
    	if(!$editName.val()){
    		warnInput($editName);
    		return false;
    	}
    	if($editName.val().length>20){
			alert("科室名称不能超过20个字符");
			return false;
		}
    	if(!$editDesc.val()){
    		warnInput($editDesc);
    		return false;  		
    	}
    	if($editDesc.val().length>80){
			alert("简介不能超过80个字符");
			return false;
		}
    	if(!$logoScan2.attr("src")){
			warnInput($logo2);
			return false;
		} 
    	return true;
    }   
    $("#btn_edit").click(function(){
    	//获取选中的行		
		var $curCol=getSelectedCols();
    	if($curCol.length!=1){
    		alert("请选择一条记录进行操作");
    		return;
    	}
    	var id=$curCol[0].id;
    	//给隐藏域id赋值
    	$("#edit_id").val(id);
    	$.get(serverURL+"test/getTest",{"id":id},function(data){
    		if(data.code==0){
    			data=data.data;
    			$editName.val(data.name);
    			$editDesc.val(data.testDesc);
    			data.isClose==0?($radios.eq(1).attr("checked","checked")):($radios.eq(0).attr("checked","checked"));
    			scanLogo2(data.logoUrl);
    		
    			$("#modal_edit").modal("show");
    		}else if(data.code!=-1){
    			alert("科室信息加载失败");
    		}
    	});	
    });
    
    $("#btn_confirm_edit").click(function(){
    	//表单验证
    	if(checkEditForm()){
			$.post(serverURL+"test/modifyTest",{"id":$editId.val(),"name":$editName.val(),"testDesc":$editDesc.val(),
				"logoUrl":$logoScan2.attr("src"),"isClose":$formEdit.find(":checked").val(),"testTypeId":testTypeId},function(data){
				if(data.code==0){
					alert("修改成功");
					$('#modal_edit').modal('hide');//隐藏模态框
					$formEdit.get(0).reset();
					reloadList();
				}else if(data.code!=-1){
					alert("修改失败，请稍后重试");
				}
			});
		}
    });
    /**-----------------切换状态---------------*/
    $("#btn_toggle").click(function(){
    	//获取选中的行		
		var $curCol=getSelectedCols();
    	if($curCol.length==0){
    		alert("请选择要操作的记录");
    		return;
    	}
    	var ids="";
    	$.each($curCol,function(i,k){
    		ids+=k.id+",";
    	});
    	ids=ids.substring(0, ids.length-1);
    	$.post(serverURL+"test/toggleTestStatus",{"ids":ids},function(data){
    		if(data.code==0){
    			alert("状态切换成功!");
    			reloadList();
    		}else if(data.code!=-1){
    			alert("数据加载失败");
    		}
    	});
    });
    /**-----------------删除---------------*/
    $("#btn_del").click(function(){
    	//获取选中的行		
    	var $curCol=getSelectedCols();
    	if($curCol.length==0){
    		alert("请选择要操作的记录");
    		return;
    	}
        if (!confirm("确认要删除么？")) {
            return false;
        }
    	if(window.confirm("此操作将会删除该试卷下的所有试题和测试结果,您确定删除吗?")){
    		var ids="";
    		$.each($curCol,function(i,k){
    			ids+=k.id+",";
    		});
    		ids=ids.substring(0, ids.length-1);
    		$.post(serverURL+"test/deleteTest",{"ids":ids},function(data){
    			if(data.code==0){
    				alert("删除成功!");
    				reloadList();
    			}else if(data.code!=-1){
    				alert("删除失败");
    			}
    		});
    	}
    });
});